home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 September / CHIP 1996 szeptember (CD07).zip / CHIP_CD07.ISO / sac / pack / rar200se.exe / rar / TECHNOTE.DOC < prev    next >
Text File  |  1996-05-24  |  10KB  |  360 lines

  1.  
  2.  ██████╗   █████╗  ██████╗
  3.  ██╔══██╗ ██╔══██╗ ██╔══██╗     RAR verzia 2.00 - Technické informácie
  4.  ██████╔╝ ███████║ ██████╔╝     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5.  ██╔══██╗ ██╔══██║ ██╔══██╗
  6.  ██║  ██║ ██║  ██║ ██║  ██║
  7.  ╚═╝  ╚═╝ ╚═╝  ╚═╝ ╚═╝  ╚═╝
  8.  
  9.   ┌─────────────────────────────────────────────────────────────────────┐
  10.   │TU POPISOVAN¥ FORMÅT ARCHïVU JE PLATN¥ LEN PRE VERZIE NOV¢IE AKO 1.50│
  11.   └─────────────────────────────────────────────────────────────────────┘
  12.  
  13.  ╔════════════════════════════════════════════════════════════════════════╗
  14.  ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ Súborovÿ formát archívu RARu ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
  15.  ╚════════════════════════════════════════════════════════════════════════╝
  16.  
  17.    Archívny súbor sa skladá z blokov premenlivej dìæky. Poradie tÿchto
  18. blokov môæe byƒ rôzne, ale prvÿ blok musí byƒ znaçkovÿ blok nasledovanÿ
  19. blokom hlaviçky archívu.
  20.  
  21.    Kaædÿ blok zaçína nasledujúcimi poîami:
  22.  
  23. HEAD_CRC       2 bajty     CRC celého bloku alebo çasti bloku
  24. HEAD_TYPE      1 bajt      Typ bloku
  25. HEAD_FLAGS     2 bajty     Príznaky bloku
  26. HEAD_SIZE      2 bajty     Veîkosƒ bloku
  27. ADD_SIZE       4 bajty     Voliteîné pole - veîkosƒ pridaného bloku
  28.  
  29.    Pole ADD_SIZE je prítomné len ak (HEAD_FLAGS & 0x8000) != 0
  30.  
  31.    Celková veîkosƒ bloku je HEAD_SIZE ak (HEAD_FLAGS & 0x8000) == 0
  32. a HEAD_SIZE+ADD_SIZE ak je pole ADD_SIZE prítomné - keâ
  33. (HEAD_FLAGS & 0x8000) != 0.
  34.  
  35.    V kaædom bloku nasledujúce bity v HEAD_FLAGS majú spoloçnÿ vÿznam:
  36.  
  37.   0x4000 - ak nastavenÿ, star¿ie verzie RARu ignorujú tento blok
  38.            a odstránia ho pri aktualizácii archívu.
  39.            ak nulovÿ, blok je kopírovanÿ do nového archívneho súboru
  40.            pri aktualizácii archívu;
  41.  
  42.   0x8000 - ak nastavenÿ, pole ADD_SIZE je prítomné a celková veîkosƒ bloku
  43.            je HEAD_SIZE+ADD_SIZE.
  44.  
  45.   Deklarované typy blokov:
  46.  
  47. HEAD_TYPE=0x72          znaçkovÿ blok
  48. HEAD_TYPE=0x73          hlaviçka archívu
  49. HEAD_TYPE=0x74          hlaviçka súboru
  50. HEAD_TYPE=0x75          hlaviçka komentára
  51. HEAD_TYPE=0x76          extra informácia
  52. HEAD_TYPE=0x77          podblok
  53. HEAD_TYPE=0x78          záchrannÿ záznam
  54.  
  55.    Komentárovÿ blok je momentálne pouæívanÿ len v inÿch blokoch a nevyskytuje
  56. sa samostatne.
  57.  
  58.    Archív sa spracováva nasledujúcim spôsobom:
  59.  
  60. 1. Preçíta a skontroluje sa znaçkovÿ blok
  61. 2. Preçíta sa hlaviçka archívu
  62. 3. Preçítajú alebo vynechajú sa bajty HEAD_SIZE-veîkosƒ(MAIN_HEAD)
  63. 4. Ak nastal koniec archívu, spracuje sa ukonçenie archívu, ináç
  64.    sa naçíta 7 bajtov do polí HEAD_CRC, HEAD_TYPE, HEAD_FLAGS, HEAD_SIZE.
  65. 5. Testuje sa HEAD_TYPE.
  66.    V prípade, æe je potrebné çítaƒ blok:
  67.          ak HEAD_TYPE==0x74
  68.            preçíta sa hlaviçka súboru ( prvÿch 7 bajtov je uæ preçítanÿch )
  69.            preçíta alebo vynechá sa HEAD_SIZE-veîkosƒ(FILE_HEAD) bajtov
  70.            preçíta alebo vynechá sa FILE_SIZE bajtov
  71.          ináç
  72.            preçíta sa zodpovedajúci blok HEAD_TYPE:
  73.              preçíta sa HEAD_SIZE-7 bajtov
  74.              ak (HEAD_FLAGS & 0x8000)
  75.                preçíta sa ADD_SIZE bajtov
  76.    V prípade, æe je potrebné vynechaƒ blok:
  77.          vynechá sa HEAD_SIZE-7 bajtov
  78.          ak (HEAD_FLAGS & 0x8000)
  79.            vynechá sa ADD_SIZE bajtov
  80. 6. pokraçuje sa bodom 4.
  81.  
  82.  
  83.  ╔════════════════════════════════════════════════════════════════════════╗
  84.  ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  Formáty blokov  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
  85.  ╚════════════════════════════════════════════════════════════════════════╝
  86.  
  87.  
  88.    Znaçkovÿ blok ( MARK_HEAD )
  89.  
  90.  
  91. HEAD_CRC        Vædy 0x6152
  92. 2 bajty
  93.  
  94. HEAD_TYPE       Typ hlaviçky: 0x72
  95. 1 bajt
  96.  
  97. HEAD_FLAGS      Vædy 0x1a21
  98. 2 bajty
  99.  
  100. HEAD_SIZE       Veîkosƒ bloku = 0x0007
  101. 2 bajty
  102.  
  103.    Znaçkovÿ blok je momentálne reprezentovanÿ pevnou sekvenciou
  104. bajtov: 0x52 0x61 0x72 0x21 0x1a 0x07 0x00
  105.  
  106.  
  107.  
  108.    Hlaviçka archívu ( MAIN_HEAD )
  109.  
  110.  
  111. HEAD_CRC        CRC polí HEAD_TYPE aæ RESERVED2
  112. 2 bajty
  113.  
  114. HEAD_TYPE       Typ hlaviçky: 0x73
  115. 1 bajt
  116.  
  117. HEAD_FLAGS      Bitové príznaky:
  118. 2 bajty
  119.                 0x01    - Atribút zväzku (archívny zväzok)
  120.                 0x02    - Prítomnosƒ archívneho komentára
  121.                 0x04    - Atribút uzamknutia archívu
  122.                 0x08    - Solid atribút (solid archív)
  123.                 0x10    - Nepouæité
  124.                 0x20    - Prítomnosƒ AV informácie
  125.  
  126.                 zvy¿né bity v HEAD_FLAGS sú rezervované pre
  127.                 interné pouæitie
  128.  
  129. HEAD_SIZE       Celková veîkosƒ hlaviçky archívu vçetne archívnych komentárov
  130. 2 bajty
  131.  
  132. RESERVED1       Rezervované
  133. 2 bajty
  134.  
  135. RESERVED2       Rezervované
  136. 4 bajty
  137.  
  138.  
  139. Komentárovÿ blok je prítomnÿ ak (HEAD_FLAGS & 0x02) != 0
  140.  
  141.  
  142.  
  143.    Hlaviçka súboru (Súboru v archíve)
  144.  
  145.  
  146. HEAD_CRC        CRC polí HEAD_TYPE aæ FILEATTR
  147. 2 bajty         a názvu súboru
  148.  
  149. HEAD_TYPE       Typ hlaviçky: 0x74
  150. 1 bajt
  151.  
  152. HEAD_FLAGS      Bitové príznaky:
  153. 2 bajty
  154.                 0x01 - súbor pokraçuje z predchádzajúceho zväzku
  155.                 0x02 - súbor pokraçuje na nasledujúcom zväzku
  156.                 0x04 - súbor je zakryptovanÿ pomocou hesla
  157.                 0x08 - prítomnÿ komentár súboru
  158.                 0x10 - je pouæitá informácia z predchádzajúcich súborov
  159.                        (solid príznak) (pre RAR 2.0 a nov¿ie)
  160.  
  161.                 bity 7 6 5 (pre RAR 2.0 a nov¿ie)
  162.  
  163.                      0 0 0    - veîkosƒ slovníka   64 kB
  164.                      0 0 1    - veîkosƒ slovníka  128 kB
  165.                      0 1 0    - veîkosƒ slovníka  256 kB
  166.                      0 1 1    - veîkosƒ slovníka  512 kB
  167.                      1 0 0    - veîkosƒ slovníka 1024 kB
  168.                      1 0 1    - rezervované
  169.                      1 1 0    - rezervované
  170.                      1 1 1    - súbor je adresár
  171.  
  172.                 (HEAD_FLAGS & 0x8000) == 1, pretoæe úplná
  173.                 veîkosƒ bloku je HEAD_SIZE + PACK_SIZE
  174.  
  175. HEAD_SIZE       Celková veîkosƒ hlaviçku súboru vçetne názvu súboru
  176. 2 bajty         a komentárov
  177.  
  178. PACK_SIZE       Veîkosƒ súboru po kompresii
  179. 4 bajty
  180.  
  181. UNP_SIZE        Veîkosƒ súboru po rozbalení
  182. 4 bajty
  183.  
  184. HOST_OS         Operaçnÿ systém pouæitÿ pre archiváciu
  185. 1 bajt                 0 - MS DOS
  186.                        1 - OS/2
  187.                        2 - Win32
  188.                        3 - Unix
  189.  
  190. FILE_CRC        CRC súboru
  191. 4 bajty
  192.  
  193. FTIME           Dátum a ças v ¿tandardnom MS DOS formáte
  194. 4 bajty
  195.  
  196. UNP_VER         Verzia RARu potrebná na extrakciu súboru
  197. 1 bajt
  198.  
  199. METHOD          Metóda kompresie
  200. 1 bajt
  201.  
  202. NAME_SIZE       Dìæka názvu súboru
  203. 2 bajty
  204.  
  205. ATTR            Atribúty súboru
  206. 4 bajty
  207.  
  208. FILE_NAME       Názov súboru - reƒazec o dìæke NAME_SIZE bajtov
  209.  
  210.  
  211. Komentárovÿ blok je prítomnÿ ak (HEAD_FLAGS & 0x08) != 0
  212.  
  213.  
  214.  
  215.   Komentárovÿ blok
  216.  
  217.  
  218. HEAD_CRC        CRC polí HEAD_TYPE aæ COMM_CRC
  219. 2 bajty
  220.  
  221. HEAD_TYPE       Typ hlaviçky: 0x75
  222. 1 bajt
  223.  
  224. HEAD_FLAGS      Bitové príznaky
  225. 2 bajty
  226.  
  227. HEAD_SIZE       Veîkosƒ hlaviçky komentára + veîkosƒ komentára
  228. 2 bajty
  229.  
  230. UNP_SIZE        Veîkosƒ komentáru po rozbalení
  231. 2 bajty
  232.  
  233. UNP_VER         Verzia RARu potrebná na extrakciu komentára
  234. 1 bajt
  235.  
  236. METHOD          Metóda kompresie
  237. 1 bajt
  238.  
  239. COMM_CRC        CRC komentára
  240. 2 bajty
  241.  
  242. COMMENT         Text komentára
  243.  
  244.  
  245.  
  246.   Blok extra informácie
  247.  
  248.  
  249. HEAD_CRC        CRC bloku
  250. 2 bajty
  251.  
  252. HEAD_TYPE       Typ hlaviçky: 0x76
  253. 1 bajt
  254.  
  255. HEAD_FLAGS      Bitové príznaky
  256. 2 bajty
  257.  
  258. HEAD_SIZE       Celková veîkosƒ bloku
  259. 2 bajty
  260.  
  261. INFO            Iné dáta
  262.  
  263.  
  264.   Podblok
  265.  
  266. Po objekte v archíve (blok alebo hlaviçka) môæe nasledovaƒ podblok.
  267. Podblok je závislÿ na hlavnom objekte. Podblok môæe byƒ vymazanÿ
  268. alebo prenesenÿ do novej verzie archívu, ak je archív aktualizovanÿ.
  269.  
  270.  Podblok obsahuje nasledujúce polia:
  271.  
  272. HEAD_CRC        CRC bloku
  273. 2 bajty
  274.  
  275. HEAD_TYPE       Typ hlaviçky: 0x77
  276. 1 bajt
  277.  
  278. HEAD_FLAGS      Bitové príznaky
  279. 2 bajty
  280.                 (HEAD_FLAGS & 0x8000) == 1, pretoæe úplná
  281.                 veîkosƒ bloku je HEAD_SIZE + DATA_SIZE
  282.  
  283. HEAD_SIZE       Celková veîkosƒ bloku
  284. 2 bajty
  285.  
  286. DATA_SIZE       Celková veîkosƒ dát
  287. 4 bajty
  288.  
  289. SUB_TYPE        Typ podbloku
  290. 2 bajty
  291.  
  292. RESERVED        Musí byƒ 0
  293. 1 bajt
  294.  
  295. Iné polia       Iné polia v závislosti od typu podbloku
  296.  
  297.  
  298.   Podblok roz¿írenÿch atribútov OS/2
  299.  
  300.  
  301. HEAD_CRC        CRC bloku
  302. 2 bajty
  303.  
  304. HEAD_TYPE       Typ hlaviçky: 0x77
  305. 1 bajt
  306.  
  307. HEAD_FLAGS      Bitové príznaky
  308. 2 bajty
  309.                 (HEAD_FLAGS & 0x8000) == 1, pretoæe úplnáì
  310.                 veîkosƒ bloku je HEAD_SIZE + DATA_SIZE
  311.  
  312. HEAD_SIZE       Celková veîkosƒ bloku
  313. 2 bajty
  314.  
  315. DATA_SIZE       Celková veîkosƒ dát (veîkosƒ skomprimovanÿch roz¿írenÿch
  316. 4 bajty         atribútov)
  317.  
  318. SUB_TYPE        0x100
  319. 2 bajty
  320.  
  321. RESERVED        Musí byƒ 0
  322. 1 bajt
  323.  
  324. UNP_SIZE        veîkosƒ roz¿írenÿch atribútov po rozbalení
  325. 4 bajty
  326.  
  327. UNP_VER         Verzia RARu potrebná na extrakciu ro¿írenÿch atribútov
  328. 1 bajt
  329.  
  330. METHOD          Metóda kompresie
  331. 1 bajt
  332.  
  333. EA_CRC          CRC roz¿írenÿch atribútov
  334. 4 bajty
  335.  
  336.  
  337.  ╔════════════════════════════════════════════════════════════════════════╗
  338.  ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  Applikaçné poznámky  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
  339.  ╚════════════════════════════════════════════════════════════════════════╝
  340.  
  341.  
  342.    1. Pri spracovaní SFX archívu musíte vynechaƒ SFX modul hîadaním
  343. znaçkového bloku v archíve. V samotnom SFX module sa nenachádza sekvencia
  344. znaçkového bloku (0x52 0x61 0x72 0x21 0x1a 0x07 0x00).
  345.  
  346.    2. CRC je kalkulovanÿ pouæitím ¿tandardardného polynómu 0xEDB88320.
  347. V prípade, æe veîkosƒ CRC je men¿ia ako 4 bajty, sú pouæité len dolné bajty.
  348.  
  349.    3. Zakódovanie metódy kompresie:
  350.          0x30 - ukladanie
  351.          0x31 - najrÿchlej¿ia kompresia
  352.          0x32 - rÿchla kompresia
  353.          0x33 - normálna kompresia
  354.          0x34 - dobrá kompresia
  355.          0x35 - najlep¿ia kompresia
  356.  
  357.    4. Verzia RARu potrebná na extrakciu je zakódovaná ako 10 * hlavné çíslo
  358. verzie + minoritné çíslo verzie.
  359.  
  360.